package com.fh.modules.system.service.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.fh.common.exception.Assert;
import com.fh.common.web.impl.AbstractServiceImpl;
import com.fh.modules.system.entity.SysFile;
import com.fh.modules.system.entity.SysFileDownload;
import com.fh.modules.system.mapper.SysFileDownloadMapper;
import com.fh.modules.system.mapper.SysFileMapper;
import com.fh.modules.system.service.ISysFileService;
import com.fh.modules.system.vo.SysFileVo;
import com.github.pagehelper.PageHelper;

/**
 * @author Qiu,Junda
 * @date 2019年4月18日
 * @description
 */
@Service
@Transactional
public class SysFileServiceImpl extends AbstractServiceImpl<SysFileMapper, SysFile> implements ISysFileService {

	@Autowired
	private SysFileMapper sysFileMapper;
	@Autowired
	private SysFileDownloadMapper sysFileDownloadMapper;

	@Override
	public List<SysFile> queryFilePage(SysFileVo fileVo) {
		PageHelper.startPage(fileVo.getPageNo(), fileVo.getPageSize());
		return sysFileMapper.querySysFile(fileVo);
	}

	@Override
	public void addFileDownloadTimes(SysFile sysFile) {
		SysFileDownload sysFileDownload = new SysFileDownload();
		sysFileDownload.setCreateTime(new Date());
		sysFileDownload.setFileId(sysFile.getId());
		sysFileDownloadMapper.insert(sysFileDownload);
		sysFileMapper.addFileDownloadTimes(sysFile.getId());
	}

	public void synAddTimes(String id) {
		SysFile sysFile = this.getById(id);
		Assert.isNull(sysFile, "下载文件不存在或者已删除");
		sysFile.setDownloadTimes(sysFile.getDownloadTimes() + 1);
		this.updateById(sysFile);

	}

}
